﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum СтатусыИзвлеченияТекстаФайлов
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"96661303-1286-4f84-93b7-0e6da2bd7893\", \"Представление\":\"НеИзвлечен\"}")]
		НеИзвлечен = 0,//Не извлечен
		[EnumMember(Value = "{\"Ссылка\":\"68076431-36e6-46dc-92cb-e0d8e605bf66\", \"Представление\":\"Извлечен\"}")]
		Извлечен = 1,
		[EnumMember(Value = "{\"Ссылка\":\"239fa55a-6572-4e5c-9918-c2e14063c76d\", \"Представление\":\"ИзвлечьНеУдалось\"}")]
		ИзвлечьНеУдалось = 2,//Извлечь не удалось
	}
	public static partial class СтатусыИзвлеченияТекстаФайлов_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid НеИзвлечен = new Guid("6d0eb793-bda2-9378-4f84-128696661303");//Не извлечен
		public static readonly Guid Извлечен = new Guid("d8e0cb92-05e6-66bf-46dc-36e668076431");
		public static readonly Guid ИзвлечьНеУдалось = new Guid("e1c21899-6340-6dc7-4e5c-6572239fa55a");//Извлечь не удалось
		public static СтатусыИзвлеченияТекстаФайлов Получить(this СтатусыИзвлеченияТекстаФайлов Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СтатусыИзвлеченияТекстаФайлов Получить(this СтатусыИзвлеченияТекстаФайлов Значение, Guid Ссылка)
		{
			if(Ссылка == НеИзвлечен)
			{
				return СтатусыИзвлеченияТекстаФайлов.НеИзвлечен;
			}
			else if(Ссылка == Извлечен)
			{
				return СтатусыИзвлеченияТекстаФайлов.Извлечен;
			}
			else if(Ссылка == ИзвлечьНеУдалось)
			{
				return СтатусыИзвлеченияТекстаФайлов.ИзвлечьНеУдалось;
			}
			return СтатусыИзвлеченияТекстаФайлов.ПустаяСсылка;
		}
		public static byte[] Ключ(this СтатусыИзвлеченияТекстаФайлов Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СтатусыИзвлеченияТекстаФайлов Значение)
		{
			switch (Значение)
			{
				case СтатусыИзвлеченияТекстаФайлов.НеИзвлечен: return НеИзвлечен;
				case СтатусыИзвлеченияТекстаФайлов.Извлечен: return Извлечен;
				case СтатусыИзвлеченияТекстаФайлов.ИзвлечьНеУдалось: return ИзвлечьНеУдалось;
			}
			return Guid.Empty;
		}
	}
}